home *** CD-ROM | disk | FTP | other *** search
- (**********************************************************)
- (**********************************************************)
- (******** ********)
- (******** DRUCKERINITIALISIERUNGSPROGRAMM ********)
- (******** ********)
- (******** FüR OKIDATA / MICROLINE 182 ********)
- (******** ********)
- (******** ACCESSORY GESCHRIEBEN VON: ********)
- (******** ********)
- (******** CARSTEN SCHNEIDER ********)
- (******** JAHNSTR. 5 ********)
- (******** 6348 HERBORN 1 ********)
- (******** ********)
- (******** Entwickelt mit ST Pascal + von CCD ********)
- (******** ********)
- (**********************************************************)
- (**********************************************************)
-
-
- {$SO,D-} (* Compilerdirektiven *)
-
- program oki_druckereinstellung;
- const
- FILENAME = 'OKI.RSC'; (* Name der RSC Datei *)
-
- {$I oki.i} (* RSC Definitionsdatei fuer Konstanten *)
- {$I gemconst.pas} (* Konstantendefinitionsdatei für GEM Anwendung *)
- (* mit ST Pascal + *)
- type
-
- {$I gemtype.pas} (* Typdefinitionsdatei für GEM Anwendung *)
- (* mit ST Pascal + *)
-
- var (* Variablendeklarationsteil *)
- menu_id,ap_id:integer;
- alert,our_name:Str255;
- menue:Dialog_Ptr;
- fehler:boolean;
-
-
- (*********** Prozedurdeklarationsteil ***********)
-
- {$I gemsubs.pas} (* Funktions- und Prozedurdeklaration für GEM *)
- (* Anwendung mit ST Pascal + *)
-
-
- procedure Cprnout(ch:char); (* GEMDOS Prozedur Zeichen an Drucker *)
- gemdos($05);
-
-
- function Cprnos:integer; (* GEMDOS Funktion Druckerstatus erfragen *)
- gemdos($11);
-
-
- procedure vergleiche(Pushed:integer; menue:Dialog_Ptr; alert:Str255);
- label
- 10; (* verarbeitet Tastendruck *)
-
- var
- Taste:integer;
-
- begin
- if Pushed = INFOEIN (* Programminformation ausgeben *)
- then
- begin
- Taste:= Do_Alert(alert,1); (* Alertbox zeigen *)
- Set_Mouse(M_POINT_HAND); (* Mausform setzen *)
- Obj_SetState(menue,INFOEIN,NORMAL,true); (* Info T. deselectieren *)
- Obj_SetState(menue,INFOEIN,SHADOWED,true); (* Schattenrand setzen *)
- goto 10
- end;
- if Pushed = ZEILEEIN (* Seitenlaenge waehlen: 66 Zeilen/Seite *)
- then
- begin
- Obj_SetState(menue,ZEILEEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,ZEILEAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(67)); (* Drucker Escape Sequenz *)
- Cprnout(chr(72));
- goto 10
- end;
- if Pushed = ZEILEAUS (* 88 Zeilen/Seite *)
- then
- begin
- Obj_SetState(menue,ZEILEAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,ZEILEEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(67)); (* Drucker Escape Sequenz *)
- Cprnout(chr(96));
- goto 10
- end;
- if Pushed = CANCEIN (* Druckpuffer loeschen *)
- then
- begin
- Obj_SetState(menue,CANCEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,CANCAUS,NORMAL,true);
- Cprnout(chr(24));
- goto 10
- end;
- if Pushed = CANCAUS (* Dummy *)
- then
- begin
- Obj_SetState(menue,CANCAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,CANCEIN,NORMAL,true);
- goto 10
- end;
- if Pushed = VORSEIN (* Einschalten Formular Vorschub *)
- then
- begin
- Obj_SetState(menue,VORSEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,VORSAUS,NORMAL,true);
- Cprnout(chr(12));
- goto 10
- end;
- if Pushed = VORSAUS (* Dummy *)
- then
- begin
- Obj_SetState(menue,VORSAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,VORSEIN,NORMAL,true);
- goto 10
- end;
- if Pushed = SPREIN (* Einschalten Druck mit Sprung *)
- then
- begin
- Obj_SetState(menue,SPREIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,SPRAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(78)); (* Drucker Escape Sequenz *)
- Cprnout(chr(1));
- goto 10
- end;
- if Pushed = SPRAUS (* Ausschalten Druck mit Sprung *)
- then
- begin
- Obj_SetState(menue,SPRAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,SPREIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(78)); (* Drucker Escape Sequenz *)
- Cprnout(chr(0));
- goto 10
- end;
- if Pushed = VFETTEIN (* Einschalten vertikaler Fettdruck *)
- then
- begin
- Obj_SetState(menue,VFETTEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,VFETTAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(71)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = VFETTAUS (* Ausschalten vertikaler Fettdruck *)
- then
- begin
- Obj_SetState(menue,VFETTAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,VFETTEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(72)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = HFETTEIN (* Einschalten horizontaler Fettdruck *)
- then
- begin
- Obj_SetState(menue,HFETTEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,HFETTAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(69)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = HFETTAUS (* Ausschalten horizontaler Fettdruck *)
- then
- begin
- Obj_SetState(menue,HFETTAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,HFETTEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(70)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = GEDEIN (* Einschalten gedehnte Schrift *)
- then
- begin
- Obj_SetState(menue,GEDEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,GEDAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(87)); (* Drucker Escape Sequenz *)
- Cprnout(chr(49));
- goto 10
- end;
- if Pushed = GEDAUS (* Ausschalten gedehnte Schrift *)
- then
- begin
- Obj_SetState(menue,GEDAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,GEDEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(87)); (* Drucker Escape Sequenz *)
- Cprnout(chr(48));
- goto 10
- end;
- if Pushed = UNTEIN (* Einschalten Unterstreichen *)
- then
- begin
- Obj_SetState(menue,UNTEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,UNTAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(45)); (* Drucker Escape Sequenz *)
- Cprnout(chr(1));
- goto 10
- end;
- if Pushed = UNTAUS (* Ausschalten Unterstreichen *)
- then
- begin
- Obj_SetState(menue,UNTAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,UNTEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(45)); (* Drucker Escape Sequenz *)
- Cprnout(chr(0));
- goto 10
- end;
- if Pushed = HOCHEIN (* Einschalten Hochstellen *)
- then
- begin
- Obj_SetState(menue,HOCHEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,HOCHAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(83)); (* Drucker Escape Sequenz *)
- Cprnout(chr(0));
- goto 10
- end;
- if Pushed = HOCHAUS (* Ausschalten Hochstellen *)
- then
- begin
- Obj_SetState(menue,HOCHAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,HOCHEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(84)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = TIEFEIN (* Einschalten Tiefstellen *)
- then
- begin
- Obj_SetState(menue,TIEFEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,TIEFAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(83)); (* Drucker Escape Sequenz *)
- Cprnout(chr(1));
- goto 10
- end;
- if Pushed = TIEFAUS (* Ausschalten Tiefstellen *)
- then
- begin
- Obj_SetState(menue,TIEFAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,TIEFEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(84)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = SATZEIN (* Einschalten Zeichensatz I *)
- then
- begin
- Obj_SetState(menue,SATZEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,SATZAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(55)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = SATZAUS (* Einschalten Zeichensatz II *)
- then
- begin
- Obj_SetState(menue,SATZAUS,SELECTED,true); (* Tasten setzen *)
- OBJ_SetState(menue,SATZEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(54)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = ABSTEIN (* Einschalten Zeilenabstand 1/6" *)
- then
- begin
- Obj_SetState(menue,ABSTEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,ABSTAUS,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(50)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = ABSTAUS (* Einschalten Zeilenabstand 1/8" *)
- then
- begin
- Obj_SetState(menue,ABSTAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,ABSTEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(48)); (* Drucker Escape Sequenz *)
- goto 10
- end;
- if Pushed = GROEIN (* Einschalten Großschrift 10 CPI *)
- then
- begin
- Obj_SetState(menue,GROEIN,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,GROAUS,NORMAL,true);
- Cprnout(chr(18));
- goto 10
- end;
- if Pushed = GROAUS (* Einschalten mittlere Schrift 12 CPI *)
- then
- begin
- Obj_SetState(menue,GROAUS,SELECTED,true); (* Tasten setzen *)
- Obj_SetState(menue,GROEIN,NORMAL,true);
- Cprnout(chr(27));
- Cprnout(chr(58)); (* Drucker Escape Sequenz *)
- end;
- 10:
- end; (* of procedure vergleiche *)
-
-
- procedure normalize; (* Deselectiert Tasten *)
- begin
- Obj_SetState(menue,ZEILEEIN,NORMAL,false);
- Obj_SetState(menue,ZEILEAUS,NORMAL,false);
- Obj_SetState(menue,CANCEIN,NORMAL,false);
- Obj_SetState(menue,CANCAUS,NORMAL,false);
- Obj_SetState(menue,VORSEIN,NORMAL,false);
- Obj_SetState(menue,VORSAUS,NORMAL,false);
- Obj_SetState(menue,SPREIN,NORMAL,false);
- Obj_SetState(menue,SPRAUS,NORMAL,false);
- Obj_SetState(menue,VFETTEIN,NORMAL,false);
- Obj_SetState(menue,VFETTAUS,NORMAL,false);
- Obj_SetState(menue,HFETTEIN,NORMAL,false);
- Obj_SetState(menue,HFETTAUS,NORMAL,false);
- Obj_SetState(menue,GEDEIN,NORMAL,false);
- Obj_SetState(menue,GEDAUS,NORMAL,false);
- Obj_SetState(menue,UNTEIN,NORMAL,false);
- Obj_SetState(menue,UNTAUS,NORMAL,false);
- Obj_SetState(menue,TIEFEIN,NORMAL,false);
- Obj_SetState(menue,TIEFAUS,NORMAL,false);
- Obj_SetState(menue,HOCHEIN,NORMAL,false);
- Obj_SetState(menue,HOCHAUS,NORMAL,false);
- Obj_SetState(menue,SATZEIN,NORMAL,false);
- Obj_SetState(menue,SATZAUS,NORMAL,false);
- Obj_SetState(menue,ABSTEIN,NORMAL,false);
- Obj_SetState(menue,ABSTAUS,NORMAL,false);
- Obj_SetState(menue,GROEIN,NORMAL,false);
- Obj_SetState(menue,GROAUS,NORMAL,false);
- end; (* of procedure normalize *)
-
-
- function druckbereit:boolean;
- var
- on_line,meldung:integer; (* Kontrolliert Druckerstatus *)
-
- begin
- on_line:= Cprnos;
- meldung:= 0;
- druckbereit:= true;
- while (on_line <> -1) and (meldung <> 2) do (* Fehlermeldung *)
- begin
- meldung:= Do_Alert('[3][Drucker ON LINE schalten !][ OK |ABORT]',1);
- on_line:= Cprnos
- end;
- if meldung = 2 (* Accessory abbrechen *)
- then
- druckbereit:= false
- end; (* of function druckbereit *)
-
-
- function ladefehler:boolean;
- var
- junk:integer; (* Kontrolliert Einladen von OKI.RSC *)
-
- begin
- ladefehler:= false;
- if not Load_Resource(FILENAME) (* Fehlermeldung *)
- then
- begin
- junk:= Do_Alert('[3][Wo ist die Datei OKI.RSC ?][ FEHLER ]',1);
- ladefehler:= true
- end
- end; (* of function ladefehler *)
-
-
- procedure ausgabe(alert:Str255; menue:Dialog_Ptr; fehler:boolean);
- var
- Pushed,Dummy,junk:integer; (* Gibt den Dialog aus und *)
- (* verarbeitet Mouseclicks *)
-
- begin
- if not fehler (* Anwendung gegebenenfalls abbrechen *)
- then
- begin
- if druckbereit (* Druckerstatus abfragen *)
- then
- begin
- Init_Mouse; (* Maus initialisieren *)
- Center_Dialog(menue); (* Dialog zentrieren *)
- Set_Mouse(M_POINT_HAND); (* Mausform setzen *)
- Pushed:= Do_Dialog(menue,Dummy); (* Dialog zeigen *)
- repeat (* Auswahlschleife *)
- if Pushed <> ENDE
- then
- begin
- vergleiche(Pushed,menue,alert); (* Tastendruck *)
- Pushed:= Redo_Dialog(menue,OKIMENUE) (* verarbeiten *)
- end
- until Pushed = ENDE;
- Obj_SetState(menue,ENDE,NORMAL,true); (* Exit deselectieren *)
- End_Dialog(menue); (* Dialog beenden *)
- normalize; (* Menuetasten deselectieren *)
- Set_Mouse(M_ARROW) (* Mausform rücksetzen *)
- end
- end
- else
- junk:= Do_Alert('[3][Accessory defekt:|OKI.RSC fehlt !][ OK ]',1)
- end; (* of procedure ausgabe *)
-
-
- procedure Event_Loop(alert:Str255; menue:Dialog_Ptr; fehler:boolean);
- var
- event,dummy:integer;
- msg:Message_Buffer;
-
- begin
- while true do (* Endlosschleife: Wartet auf Message Events *)
- begin
- event:= Get_Event(E_MESSAGE,
- 0,0,0,0,
- false,0,0,0,0,
- false,0,0,0,0,
- msg,dummy,dummy,
- dummy,dummy,dummy,dummy);
-
- case msg[0] of (* Messagebuffer abfragen *)
- AC_Open:
- (* if msg[4] = menu_id then *) (* Fehler in Menu_Register *)
- ausgabe(alert,menue,fehler);
- end
- end (* of while *)
- end; (* of procedure Event_Loop *)
-
-
- begin (***** Hauptprogramm *****)
- ap_id:= Init_Gem; (* Applikationsnummer speichern *)
- if ap_id >= 0
- then
- begin
- our_name:= ' Oki_182 Init';
- menu_id:= Menu_Register(ap_id,our_name); (* Menuepunkt setzen *)
- fehler:= ladefehler;
- Find_Dialog(OKIMENUE,menue); (* Dialogpointer zuweisen *)
- Find_Alert(INFO,alert); (* Alertstring zuweisen *)
- Event_Loop(alert,menue,fehler); (* Warteschleife *)
- end
- end. (* Hauptprorgamm *)
-